home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / strategy / xpuzzles.3 / xpuzzles / xpuzzles-5.3.1 / xskewb / Skewb3dP.h < prev    next >
C/C++ Source or Header  |  1996-02-05  |  2KB  |  79 lines

  1. /*
  2. # X-BASED SKEWB
  3. #
  4. #  Skewb3dP.h
  5. #
  6. ###
  7. #
  8. #  Copyright (c) 1994 - 96    David Albert Bagley, bagleyd@hertz.njit.edu
  9. #
  10. #                   All Rights Reserved
  11. #
  12. #  Permission to use, copy, modify, and distribute this software and
  13. #  its documentation for any purpose and without fee is hereby granted,
  14. #  provided that the above copyright notice appear in all copies and
  15. #  that both that copyright notice and this permission notice appear in
  16. #  supporting documentation, and that the name of the author not be
  17. #  used in advertising or publicity pertaining to distribution of the
  18. #  software without specific, written prior permission.
  19. #
  20. #  This program is distributed in the hope that it will be "playable",
  21. #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  22. #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  23. #
  24. */
  25.  
  26. /* Private header file for Skewb3d */
  27.  
  28. #ifndef _Skewb3dP_h
  29. #define _Skewb3dP_h
  30.  
  31. #include "Skewb3d.h"
  32.  
  33. #define SAME 0
  34. #define OPPOSITE 1
  35. #define DOWN 0
  36. #define UP 1
  37. #define COORD3D 12
  38. #define MAXVIEWS 2
  39.  
  40. #define SQRT_3 1.732050808
  41. #define MULTIPLY(a) ((int)((double)a*SQRT_3/2.0))
  42. #define DIVIDE(a) ((int)((double)a*2.0/SQRT_3))
  43.  
  44. typedef struct _Skewb3DPart
  45. {
  46.   Position cubeDiagonal, cubeDiag, diamondDiagonal, faceDiagonal;
  47.   XPoint cubeSize, diamondSize, faceSize, viewSize;
  48.   XPoint viewMiddle;
  49. } Skewb3DPart;
  50.  
  51. typedef struct _Skewb3DRec
  52. {
  53.   CorePart core;
  54.   SkewbPart skewb;
  55.   Skewb3DPart skewb3d;
  56. } Skewb3DRec;
  57.  
  58. /* This gets around C's inability to do inheritance */
  59. typedef struct _Skewb3DClassPart
  60. {
  61.   int ignore;
  62. } Skewb3DClassPart;
  63.  
  64. typedef struct _Skewb3DClassRec
  65. {
  66.   CoreClassPart core_class;
  67.   SkewbClassPart skewb_class;
  68.   Skewb3DClassPart skewb3d_class;
  69. } Skewb3DClassRec;
  70.  
  71. extern Skewb3DClassRec skewb3dClassRec;
  72.  
  73. extern int SelectPolyhedrons3D();
  74. extern int NarrowSelection3D();
  75. extern void DrawDiamond3D();
  76. extern void DrawTriangle3D();
  77.  
  78. #endif /* _Skewb3dP_h */
  79.